#ifndef LOWLEVEL_HOOKS_H
#define LOWLEVEL_HOOKS_H

#include "common.h"
#include "lowlevel_proc.h"


class hooks {
public:
    static hooks &instance() { static hooks hinstance; return hinstance; }
    static const enum hookType{ HOOK_UNDEF=0, HOOK_KEYBOARD, HOOK_MOUSE, };

    static UINT_PTR hook_create(hookType type, LRESULT (CALLBACK *hkFct)(INT, WPARAM, LPARAM));
    static FunctionSuccesFailure hook_destroy(UINT_PTR hkHookRaw);

private:
    hooks() {}
    hooks(const hooks&);
    hooks &operator=(const hooks&);

};


#endif
